package com.bcbim.smart_water.road.mapper;

import com.bcbim.common.sys.Code;
import com.bcbim.smart_water_interface.road.dao.RoadDAO;
import com.bcbim.smart_water_interface.road.dto.RoadDTO;
import com.bcbim.smart_water_interface.road.vo.RoadPullVO;
import com.bcbim.smart_water_interface.road.vo.RoadVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 获取道路下拉列表
 *
 * @author wxc
 * @version V 1.0.0
 * @date 2021/8/13
 **/
@Mapper
public interface RoadMapper {

    /**
     * 获取道路下拉列表
     *
     * @return java.util.List<com.bcbim.common.sys.Code>
     * @author wxc
     * @date 2021/8/13  11:23
     */
    List<RoadPullVO> getRoadPull();

    /**
     * 添加道路
     *
     * @param roadDAO 道路数据库对应实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  10:49
     */
    Integer addRoad(RoadDAO roadDAO);

    /**
     * 获取道路列表数量
     *
     * @param roadDTO 道路列表查询实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  10:49
     */
    Integer getRoadListCount(RoadDTO roadDTO);

    /**
     * 获取道路列表分页数据
     *
     * @param roadDTO 道路列表查询实体类
     * @return java.util.List<com.bcbim.pipeline_interface.road.vo.RoadVO>
     * @author wxc
     * @date 2021/8/26  10:49
     */
    List<RoadVO> getRoadList(RoadDTO roadDTO);

    /**
     * 查看道路详情
     *
     * @param id 道路id
     * @return com.bcbim.pipeline_interface.road.vo.RoadVO
     * @author wxc
     * @date 2021/8/26  11:08
     */
    RoadVO getRoadDetail(String id);

    /**
     * 修改道路信息
     *
     * @param roadDAO 道路数据库对应实体类
     * @return java.lang.Integer
     * @author wxc
     * @date 2021/8/26  15:04
     */
    Integer updateRoad(RoadDAO roadDAO);

    /**
     * 获取最多的一条的道路的数量（通过道路名称）
     *
     * @param roadDAO 道路数据库对应实体类
     * @return java.lang.Integer 返回道路数量（最多一条）通过道路名称
     * @author wxc
     * @date 2021/9/6  9:28
     */
    Integer countRoadByName(RoadDAO roadDAO);

    /**
     * 判断道路是否已经使用
     *
     * @param roadId    道路id
     * @param tableName 表名(判断道路是否在这些表中已经存在)
     * @return java.lang.String
     * @author wxc
     * @date 2021/9/13  13:47
     */
    String checkRoadUse(@Param("roadId") String roadId, @Param("tableName") String tableName);

    /**
     * 获取道路下拉列表
     *
     * @return java.util.List<com.bcbim.common.sys.Code>
     * @author wxc
     * @date 2021/9/13  13:48
     */
    List<Code> listRoadPull(String roadName);
}
